#ifndef _ALUTERMIOATTR_H
#define _ALUTERMIOATTR_H   1

extern "C" {
#include <stdio.h>
#include <termios.h>
}

///////////////////////////////////////////////////////////////////////////////
//
// class declarations
//

//
// class aluTermIoAttr
// - used to modify termilan I/O for non-blocking I/O with automatic
//   restoration of initial data when the object is destroyed
//

class aluTermIoAttr {
 private:
  bool isTerminal;
  int fn;
  struct termios attr;
 public:
  aluTermIoAttr();
  aluTermIoAttr(int fn);
  aluTermIoAttr(FILE *input);
  virtual ~aluTermIoAttr();
  
  void SetImmedNoecho();
  void SetSerialInput();
  void Reset();
};

#endif
